﻿using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;

namespace KineticListViewTest
{
    public class ListOfElementViewModel : ViewModelBase
    {
       public ObservableCollection<Data> DataToShow { get; set; }

       public ObservableCollection<Data> DataToShowRepetition { get; set; }

       public ObservableCollection<Data> DataToShowSingleRepetition { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <value></value>
        public Object SelObj
        {
            get { return _selObject; }
            set { _selObject = value;
            OnPropertyChanged("SelObj");
            }
        }

        private object _selObject;
       public ListOfElementViewModel()
       {
           DataToShow = new ObservableCollection<Data>();
           DataToShowRepetition = new ObservableCollection<Data>();
           DataToShowSingleRepetition = new ObservableCollection<Data>();
           for (int i = 0; i < 100; i++)
           {
               Data d = new Data() {Value ="Stringa che è abbastanza lunga" + i, IValue = i};
               DataToShow.Add(d);
               DataToShowRepetition.Add(d);

           }
           
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 1]);
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 2]);
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 3]);
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 4]);
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 5]);
           DataToShowRepetition.Insert(0, DataToShow[DataToShow.Count - 6]);
           DataToShowRepetition.Add(DataToShow[0]);
           DataToShowRepetition.Add(DataToShow[1]);
           DataToShowRepetition.Add(DataToShow[2]);
           DataToShowRepetition.Add(DataToShow[3]);
           DataToShowRepetition.Add(DataToShow[4]);
           DataToShowRepetition.Add(DataToShow[5]);


           DataToShowSingleRepetition.Add(new Data() { Value = "Stringa che è abbastanza lunga " + 0, IValue = 0 });
           DataToShowSingleRepetition.Add(new Data() { Value = "Stringa che è abbastanza lunga " + 1, IValue = 1 });
           DataToShowSingleRepetition.Add(new Data() { Value = "Stringa che è abbastanza lunga " + 2, IValue = 2 });
           DataToShowSingleRepetition.Add(new Data() { Value = "Stringa che è abbastanza lunga " + 3, IValue = 3 });
           DataToShowSingleRepetition.Add(new Data() { Value = "Stringa che è abbastanza lunga " + 4, IValue = 4 });

           var temp = DataToShowSingleRepetition.Last();
           DataToShowSingleRepetition.Add(DataToShowSingleRepetition.First());
           DataToShowSingleRepetition.Insert(0, temp);
       }


    }
}
